package com.molihub.mapper;

import com.molihub.entity.FileFolder;
import com.molihub.entity.MyFile;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
* @ClassName: FileFolderMapper
* @Description: TODO
* @author: PJAVAC
* @date 2020/2/8 23:00
* @Version: 1.0
**/
@Repository
@Mapper
public interface FileFolderMapper {

    /**
     * @Description 根据文件夹的id删除文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:38
     * @Param [fileFolderId] 文件夹的id
     * @Return java.lang.Integer
     */
    Integer deleteFileFolderById(Integer fileFolderId);

    /**
     * @Description 根据父文件夹的id删除文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:38
     * @Param [parentFolderId] 父文件夹的id
     * @Return java.lang.Integer
     */
    Integer deleteFileFolderByParentFolderId(Integer parentFolderId);

    /**
     * @Description 根据仓库的id删除文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 17:05
     * @Param [fileStoreId] 仓库的id
     * @Return java.lang.Integer
     */
    Integer deleteFileFolderByFileStoreId(Integer fileStoreId);

    /**
     * @Description 增加文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:37
     * @Param [fileFolder] 文件夹对象
     * @Return java.lang.Integer
     */
    Integer addFileFolder(FileFolder fileFolder);

    /**
     * @Description 根据文件夹的id获取文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:34
     * @Param [fileFolderId] 文件夹id
     * @Return com.molihub.entity.FileFolder
     */
    FileFolder getFileFolderById(Integer fileFolderId);

    /**
     * @Description 根据父文件夹的id获取文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:34
     * @Param [parentFolderId] 文件夹id
     * @Return com.molihub.entity.FileFolder
     */
    List<FileFolder> getFileFolderByParentFolderId(Integer parentFolderId);

    /**
     * @Description 根据仓库的id获取文件夹
     * @Author PJAVAC
     * @Date 2020/2/9 16:34
     * @Param [fileStoreId] 仓库的id
     * @Return com.molihub.entity.FileFolder
     */
    List<FileFolder> getFileFolderByFileStoreId(Integer fileStoreId);
    
    /**
     * @Description 获得仓库的文件夹数量
     * @Author xw
     * @Date 21:56 2020/2/10
     * @Param [fileStoreId]
     * @return java.lang.Integer
     **/
    Integer getFileFolderCountByFileStoreId(Integer fileStoreId);

    /**
     * @Description 根据仓库Id获得仓库根目录下的所有文件夹
     * @Author xw
     * @Date 23:49 2020/2/9
     * @Param [fileStoreId]
     * @return java.util.List<com.molihub.entity.FileFolder>
     **/
    List<FileFolder> getRootFoldersByFileStoreId(Integer fileStoreId);

    /**
     * @Description 根据文件夹的id修改文件夹信息
     * @Author PJAVAC
     * @Date 2020/2/9 16:39
     * @Param [fileFolder] 文件夹对象
     * @Return java.lang.Integer
     */
    Integer updateFileFolderById(FileFolder fileFolder);

    /**
     * @Description 根据文件夹的id获取文件夹下面的文件
     * @Author PJAVAC
     * @Date 2020/2/9 22:13
     * @Param [fileStoreId]
     * @Return java.util.List<com.molihub.entity.MyFile>
     */
    List<MyFile> getFileByFileFolder(Integer fileStoreId);

}